/*
 * TICPY Framework
 * Copyright (C) 2012 Plan Director TICs
 *
----------------------------------------------------------------------------
 * Originally developed by SERPRO
 * Demoiselle Framework
 * Copyright (C) 2010 SERPRO
 *
----------------------------------------------------------------------------
 * This file is part of TICPY Framework.
 *
 * TICPY Framework is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License version 3
 * along with this program; if not,  see <http://www.gnu.org/licenses/>
 * or write to the Free Software Foundation, Inc., 51 Franklin Street,
 * Fifth Floor, Boston, MA  02110-1301, USA.
 *
----------------------------------------------------------------------------
 * Este archivo es parte del Framework TICPY.
 *
 * El TICPY Framework es software libre; Usted puede redistribuirlo y/o
 * modificarlo bajo los términos de la GNU Lesser General Public Licence versión 3
 * de la Free Software Foundation.
 *
 * Este programa es distribuido con la esperanza que sea de utilidad,
 * pero sin NINGUNA GARANTÍA; sin una garantía implícita de ADECUACION a cualquier
 * MERCADO o APLICACION EN PARTICULAR. vea la GNU General Public Licence
 * más detalles.
 *
 * Usted deberá haber recibido una copia de la GNU Lesser General Public Licence versión 3
 * "LICENCA.txt", junto con este programa; en caso que no, acceda a <http://www.gnu.org/licenses/>
 * o escriba a la Free Software Foundation (FSF) Inc.,
 * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
 */
package py.org.financiero.view;

import java.sql.Timestamp;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;

import org.ticpy.tekoporu.annotation.NextView;
import org.ticpy.tekoporu.annotation.PreviousView;
import org.ticpy.tekoporu.stereotype.ViewController;
import org.ticpy.tekoporu.template.AbstractEditPageBean;
import org.ticpy.tekoporu.transaction.Transactional;

import py.org.financiero.business.FeriadoBC;
import py.org.financiero.domain.Feriado;
import py.org.financiero.util.UsuarioUtils;

@ViewController
@PreviousView("/feriado_list.xhtml")
@NextView("/feriado_edit.xhtml")
public class FeriadoEditMB extends AbstractEditPageBean<Feriado, Integer> {

	private static final long serialVersionUID = 1L;

	@Inject
	private FeriadoBC feriadoBC;

	@Inject
	UsuarioUtils usuario;
	
	//Se obtiene el archivo de mensajes
	FacesContext ctx = FacesContext.getCurrentInstance();
	Locale locale = ctx.getViewRoot().getLocale();
	ResourceBundle mensajes = (ResourceBundle) ResourceBundle.getBundle("messages", locale);
	/**
	 * Borrado logico
	 */
	@Override
	@Transactional
	public String delete() {
		getBean().setFechaBaja(new Timestamp((new Date()).getTime()));
		getBean().setUsuarioBaja(usuario.getUsername());
		this.feriadoBC.update(getBean());
		FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, mensajes.getString("eliminado.exito"), null);  
        FacesContext.getCurrentInstance().addMessage("suceso", msg); 
		return getPreviousView();
	}

	/**
	 * Inserta un nuevo feriado
	 */
	@Override
	@Transactional
	public String insert() {
		getBean().setFechaAlta(new Timestamp((new Date()).getTime()));
		getBean().setUsuarioAlta(usuario.getUsername());
		this.feriadoBC.insert(getBean());
		FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, mensajes.getString("agregado.exito"), null);  
        FacesContext.getCurrentInstance().addMessage("suceso", msg); 
		return getNextView();
	}

	/**
	 * Actualiza un feriado
	 */
	@Override
	@Transactional
	public String update() {
		getBean().setFechaModificacion(new Timestamp((new Date()).getTime()));
		getBean().setUsuarioModificacion(usuario.getUsername());
		this.feriadoBC.update(getBean());
		FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, mensajes.getString("modificado.exito"), null);  
        FacesContext.getCurrentInstance().addMessage("suceso", msg); 
		return getPreviousView();
	}

	@Override
	protected void handleLoad() {
		setBean(this.feriadoBC.load(getId()));
	}

}
